﻿namespace Sai.Core
{
	using System.Collections.ObjectModel;
	using System.IO;

    public interface IProductReleaseDifference : IFlattenToXml
	{
		string Identifier { get; set; }

		string Name { get; set; }

		string FromVersion { get; set; }

		string ToVersion { get; set; }

        int PercentChurn { get; set; }

		Collection<ProductAssembly> AddedAssemblies { get; }

		Collection<ProductAssembly> ChangedAssemblies { get; }

		Collection<ProductAssembly> RemovedAssemblies { get; }

		void Added(ProductAssembly assembly);

		void Changed(ProductAssembly assembly);

		void Removed(ProductAssembly assembly);

		ProductAssembly FindAssembly(string assemblyName);

		void SaveTo(string fileName);

		void SaveTo(TextWriter writer);
	}
}
